package com.example.chatgptapplication.utils;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.chatgptapplication.common.bean.BaseEntity;
import com.example.chatgptapplication.entity.Model;
import org.springframework.stereotype.Component;

import java.lang.reflect.Field;

@Component
public class QueryHelper<T> {


    public QueryWrapper<? extends BaseEntity> getQueryWrapper(BaseEntity t){
        QueryWrapper<? extends BaseEntity> queryWrapper = new QueryWrapper<>();
        // 获取Model类的所有字段
        Field[] fields = BaseEntity.class.getDeclaredFields();
        for (Field field : fields) {
            // 设置为可访问的，以便可以访问私有字段
            field.setAccessible(true);

            // 检查字段上是否有@TableField注解
            TableField tableField = field.getAnnotation(TableField.class);
            if (tableField != null && !tableField.exist()) {
                // 如果exist=false，则跳过该字段
                continue;
            }

            // 获取字段名
            String fieldName = field.getName();
            // 获取字段值
            Object fieldValue = null;
            try {
                fieldValue = field.get(t);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }

            // 检查字段值是否为空
            if (fieldValue != null && !fieldValue.equals("")) {
                // 根据字段名生成查询条件
                queryWrapper.eq(fieldName, fieldValue);
            }
        }

        return queryWrapper;
    }


}
